1. Field of the Invention
This invention relates to computer systems and, more particularly, to recovery of computer systems.
2. Description of the Related Art
Many business organizations and governmental entities today increasingly rely upon mission-critical applications to provide services to both internal and external customers. Large data centers in such organizations may support complex mission-critical applications utilizing hundreds of processors and terabytes of data. Application down time, e.g., due to hardware or software failures, bugs, malicious intruders, or events such as power outages or natural disasters, may sometimes result in substantial revenue losses and/or loss of good will among customers in such environments. The importance of maintaining a high level of application availability has therefore been increasing over time.
Various approaches may be taken to increase the availability of the computing services provided at a data center, such as the use of redundant and/or fault-tolerant hardware and software, the deployment of security software and/or hardware such as anti-virus programs, firewalls and the like, extensive debugging of software prior to deployment in a production environment, etc. However, it may be hard or impossible to completely eliminate the occurrence of failures that may render a computer server unbootable. For example, storage devices including a system disk containing the operating system in use at the server may become corrupted or inoperable due to any of a variety of reasons, such as administrator error, mechanical failure or electrical failure. In order to be able to respond to such situations effectively, enterprises typically choose to implement recovery techniques of various kinds. Recovery techniques may be implemented for both local recovery and for remote recovery at one or more replication sites.
Computing systems and environments today may be fairly complex and may utilize equipment and software supplied by numerous disparate vendors. For example, one portion of a corporate computing system may be configured for use by engineers and other technical personnel for the purpose of product design and development, while another portion of the computing system may be configured for use by accounting and/or administrative personnel. Given the differing needs of such personnel, the equipment used by these groups my differ. Further, the operating systems and software used by these groups may differ as well. Even within a given group, various personnel may be using computers (e.g., desktop, notebook, workstation, handheld, etc.) which are configured differently. For example, one computer may have a UNIX® type operating system (OS) installed, while another may have a Windows® operating system installed. (UNIX is a trademark of Unix System Laboratories, Inc., and Windows is a trademark of Microsoft Corporation). Alternatively, different versions of a given operating system may be installed on different computers. Still further, more than one operating system could be installed on a single machine.
In addition to the differing configurations of various computers, various individuals within an organization may have different needs with respect resource access. Consequently, each user's computer may be configured to suit that individual's needs. For example, drive letter mappings, environment variables, and network settings may all be customized for a particular user. In some cases, particular settings may be common to many users, but others may not.
In view of the diverse nature of the above described computing systems, managing such systems can be quite challenging. One scenario which may present itself to an IT professional is the recovery of a systems which has “crashed” or otherwise become inoperable. In order to deal with such situations, a network administrator may generally attempt to reboot/restart a system in order to diagnose or repair the problem(s). One approach to booting a system which has failed is to use a “boot” disk. Generally speaking, a boot disk is a disk (e.g., CD ROM or floppy disk) which may be used to boot an operating system on a computer. Such boot disks may be created ahead of time for a specific machine and may include particulars concerning the environment of the machine for which it was created. In such a case, the boot disk is unique to that machine. Alternatively, a more generic boot disk could be created which may be used for more than one machine. The more generic boot disk generally includes basic elements of an operating system, and may include a default environment. However, the more generic boot disk does not typically provide for the particulars of a given user's environment.
A similar approach to the boot disk is a recovery/preinstall type operating system such as Microsoft Windows Preinstallation Environment (PE). Recovery/preinstall environments such as Microsoft Windows PE have a default environment with default settings. Such default settings may generally include default drive letter mappings, environment variables, network settings, and so on. For many cases, the default values chosen by the recovery environment may be adequate or at least workable depending upon the requirements of a particular situation. However, there are situations where the default environment may not be adequate. For example, default drive letter assignments may not be acceptable as they may prohibit the completion of one or more tasks.
As an example, the default environment provided by a recovery environment such as that described above may not be suitable when the recovery OS is used to execute delayed commands that could not be executed while running within the installed OS. Commonly this occurs when resources that an application wants to modify are not modifiable within the installed OS because they are in use and cannot be locked by the application. The application may then schedule execution of the tasks in a recovery environment and initiate a shutdown and reboot into that recovery environment. By yielding to another operating environment, the application has last control and cannot predict what environment settings will exist during the delayed execution. Consequently, improper operation may occur upon reboot.
In addition to the delayed execution model already mentioned, recovery environments like Windows PE are increasingly used for diagnostics and support by IT professionals. By booting into a recovery OS on a machine of interest, a system administrator can check file systems, OS settings, etc. Here again, they well inherit the default settings of the recovery environment. Because the recovery OS does not use the user's environment settings, diagnosis of a problem may be more difficult. For example, the user's drive letter assignments may differ from those of the recovery OS. Generally speaking, it would be preferable to receive the same drive letter assignments as the installed OS. This would make diagnosis more straight forward and eliminate guessing about which drive is which, and so on.
In view of the above, a method and mechanism for booting an operating system with an installed environment is desired.